The present invention generally relates to communication busses, and more particularly relates to a method for breaking loops during a tree identification process of a system bus.
Bus interconnects allow a wide range of devices, for example computers and peripherals, to share a same media. Communication between attached devices which share the same media can be problematic, however, due to known bus protocols which require a node to arbitrate for control of the bus before transmitting data. Some existing bus architectures provide protocols that define an arbitration process for a bus topology which is tree-like. In such a tree-like topology, a hierarchy of nodes must be specified to accommodate the arbitration process.
To achieve a high speed bus, IEEE 1394 Standards utilize a tree-identification (ID) process using an algorithm that quickly locates peripheral devices connected on the bus. The tree-ID process establishes a hierarchy of nodes, including a root node to accommodate arbitration. The root node is the highest node in the hierarchy. To maintain the hierarchy, the tree-ID process occurs whenever a new device is added to the bus or turned on.
A problem exists with tree-like topologies similar to IEEE 1394 Standards since, by definition, they only work when there is no loop of devices on the bus. A loop occurs whenever more than one path connects any two nodes. According to the Standard, a looped topology will hang the bus during the tree-ID process, thus not all of the nodes can proceed with the tree-ID process. When a looped topology exists, no node will become the root node, and in the absence of a root node, no requests for arbitration will be granted. Unfortunately, nodes are often connected in a loop, even if inadvertently.
Accordingly, in response to the problems discussed above, a primary object of the present invention is to provide an improved method of determining system bus hierarchy.
Another object of the present invention is to provide an improved method that handles looped topologies within a maximum predetermined time period.